ROC-AUC Curve এবং Precision-Recall Curve হল দুটি জনপ্রিয় মেট্রিক্স যা মেশিন লার্নিং ক্লাসিফিকেশন মডেলগুলির কার্যকারিতা মূল্যায়ন করতে ব্যবহৃত হয়। এগুলি বিশেষভাবে বাইনারি ক্লাসিফিকেশন সমস্যায় ব্যবহৃত হয়, যেখানে দুইটি শ্রেণি (যেমন স্প্যাম/নন-স্প্যাম, পজিটিভ/নেগেটিভ) থাকে। এই দুটি মেট্রিক্স বিভিন্ন দৃষ্টিকোণ থেকে মডেলের পারফরম্যান্স দেখায় এবং এটি মডেল নির্বাচন এবং পারফরম্যান্স উন্নত করতে সাহায্য করে।
1. ROC Curve (Receiver Operating Characteristic Curve)
ROC Curve একটি গ্রাফিক্যাল উপস্থাপনা যা True Positive Rate (TPR) এবং False Positive Rate (FPR) এর মধ্যে সম্পর্ক দেখায়। এটি মডেলের পারফরম্যান্স মূল্যায়নের জন্য বিশেষভাবে ব্যবহৃত হয় এবং বাইনারি ক্লাসিফিকেশন মডেল (যেমন স্প্যাম ডিটেকশন) এর জন্য কার্যকরী।
ROC Curve এর উপাদান:
- True Positive Rate (TPR) বা Recall (Sensitivity):
এটি হলো সঠিকভাবে পজিটিভ ক্লাস পূর্বাভাস করার হার। - False Positive Rate (FPR):
এটি হলো ভুলভাবে নেগেটিভ ক্লাসকে পজিটিভ হিসেবে পূর্বাভাস করার হার।
ROC Curve গ্রাফে FPR X-অক্ষ (Horizontal) এবং TPR Y-অক্ষ (Vertical) এ প্লট করা হয়।
ROC Curve এর লক্ষ্য:
- একটি ভাল মডেল TPR বেশি এবং FPR কম রাখতে চায়, তাই এটি গ্রাফের উপরের বাম দিকে অবস্থান করবে।
- AUC (Area Under the Curve) হলো ROC Curve এর নিচের এলাকা, যা মডেলের পারফরম্যান্সের একটি পরিমাপ। AUC এর মান 0 থেকে 1 এর মধ্যে থাকে:
- AUC = 1: মডেলটি সঠিকভাবে সমস্ত কেস পূর্বাভাস করছে।
- AUC = 0.5: মডেলটি এলোমেলো পূর্বাভাস দিচ্ছে।
- AUC < 0.5: মডেলটি খারাপ কাজ করছে।
ROC Curve Example:
from sklearn.metrics import roc_curve, auc
import matplotlib.pyplot as plt
y_true = [0, 0, 1, 1] # আসল টার্গেট
y_scores = [0.1, 0.4, 0.35, 0.8] # মডেলের স্কোর
fpr, tpr, thresholds = roc_curve(y_true, y_scores)
roc_auc = auc(fpr, tpr)
# ROC Curve Plot
plt.plot(fpr, tpr, color='blue', lw=2, label=f'AUC = {roc_auc:.2f}')
plt.plot([0, 1], [0, 1], color='gray', linestyle='--')
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver Operating Characteristic (ROC) Curve')
plt.legend(loc="lower right")
plt.show()
সারাংশ:
ROC Curve মডেলের পারফরম্যান্স দেখানোর জন্য একটি গ্রাফিক্যাল রিপ্রেজেন্টেশন যা True Positive Rate (TPR) এবং False Positive Rate (FPR) এর সম্পর্ক প্রদর্শন করে। AUC হল ROC Curve এর নিচের এলাকার পরিমাপ, যা মডেলের পারফরম্যান্সের একটি সংক্ষিপ্ত পরিমাপ প্রদান করে।
2. Precision-Recall Curve
Precision-Recall Curve হলো একটি মেট্রিক যা Precision এবং Recall এর মধ্যে সম্পর্কের গ্রাফিক্যাল উপস্থাপনা সরবরাহ করে। এটি বিশেষভাবে Imbalanced Dataset (যেখানে এক ক্লাস অন্য ক্লাসের তুলনায় বেশি সংখ্যায় থাকে) এর জন্য কার্যকরী, যেখানে positive class অত্যন্ত কম হতে পারে।
Precision এবং Recall:
- Precision:
এটি হলো সঠিকভাবে পজিটিভ ক্লাস পূর্বাভাসের হার, যখন পূর্বাভাস পজিটিভ হয়েছে। - Recall (Sensitivity or TPR):
এটি হলো সঠিকভাবে পজিটিভ ক্লাস পূর্বাভাস করার হার, যখন আসল ক্লাস পজিটিভ ছিল।
Precision-Recall Curve:
Precision-Recall Curve গ্রাফে:
- X-অক্ষ: Recall (TPR)
- Y-অক্ষ: Precision
এই গ্রাফটি আপনাকে একটি নির্দিষ্ট সিদ্ধান্ত সীমার মধ্যে Precision এবং Recall এর বিভিন্ন মান দেখায়।
Precision-Recall Curve এর লক্ষ্য:
- একটি ভাল মডেল Precision এবং Recall উভয়ই উচ্চ রাখতে চায়।
- Precision-Recall Curve সাধারণত Imbalanced Dataset এ বেশি গুরুত্বপূর্ণ, যেখানে ROC-AUC Curve নির্ভুল পরিমাপ নাও হতে পারে।
Precision-Recall Example:
from sklearn.metrics import precision_recall_curve
import matplotlib.pyplot as plt
y_true = [0, 0, 1, 1] # আসল টার্গেট
y_scores = [0.1, 0.4, 0.35, 0.8] # মডেলের স্কোর
precision, recall, thresholds = precision_recall_curve(y_true, y_scores)
# Precision-Recall Curve Plot
plt.plot(recall, precision, color='blue', lw=2)
plt.xlabel('Recall')
plt.ylabel('Precision')
plt.title('Precision-Recall Curve')
plt.show()
সারাংশ:
Precision-Recall Curve Precision এবং Recall এর মধ্যে সম্পর্ক দেখায়, যা ক্লাসিফিকেশন মডেলের পারফরম্যান্স পরিমাপ করতে ব্যবহৃত হয়। এই গ্রাফ বিশেষভাবে Imbalanced Datasets এর জন্য উপযুক্ত, যেখানে পজিটিভ ক্লাস কম থাকে এবং মডেলের True Positives এর মূল্যায়ন গুরুত্বপূর্ণ।
ROC Curve এবং Precision-Recall Curve এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | ROC Curve | Precision-Recall Curve |
|---|---|---|
| ব্যবহার | ক্লাসিফিকেশন মডেলের পারফরম্যান্স মূল্যায়ন | Imbalanced Dataset এ মডেল পারফরম্যান্স মূল্যায়ন |
| প্রধান পরিমাপ | True Positive Rate (TPR) এবং False Positive Rate (FPR) | Precision এবং Recall |
| উদাহরণ | যেসব সমস্যা সঠিক এবং ভুল পজিটিভ ফিচার যাচাই করতে হবে | পজিটিভ ক্লাসের হার কম, যেমন স্প্যাম ডিটেকশন |
| ইনফরমেশন | TPR এবং FPR এর মধ্যে সম্পর্ক দেখায় | Precision এবং Recall এর মধ্যে সম্পর্ক দেখায় |
সারাংশ:
- ROC Curve মডেলের True Positive Rate এবং False Positive Rate এর মধ্যে সম্পর্ক দেখায় এবং AUC দ্বারা মডেলের পারফরম্যান্স পরিমাপ করে।
- Precision-Recall Curve Precision এবং Recall এর মধ্যে সম্পর্ক দেখায় এবং সাধারণত Imbalanced Dataset এর জন্য বেশি কার্যকরী, যেখানে পজিটিভ ক্লাস কম থাকে।
এই দুটি মেট্রিক্সই মডেল ইভ্যালুয়েশনের জন্য গুরুত্বপূর্ণ এবং ব্যবহারকারীর প্রয়োজনে সঠিক সিদ্ধান্ত নিতে সহায়ক।
Read more